perm filename COPY.LSP[W82,JMC] blob
sn#648971 filedate 1982-03-24 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 copy.lsp[w82,jmc] speed tests for copy
C00004 ENDMK
Cā;
;;;copy.lsp[w82,jmc] speed tests for copy
(defun copy1 (u) (if (null u) u (cons (car u) (copy1 (cdr u)))))
(defun copy2 (u) (if (null u)
u
((lambda (z) (copy2a z z))
(cons (car u) (cdr u)))))
(defun copy2a (ans z)
(if (null (cdr z))
ans
((lambda (w) (copy2a ans (cdr (rplacd z w))))
(cons (cadr z) (cddr z)))))
(defun copy3 (x) (if (atom x)
x
((lambda (z) (copy3a z z))
(cons (copy3 (car x)) (cdr x)))))
(defun copy3a (ans z)
(if (atom (cdr z))
ans
((lambda (w) (copy3a ans (cdr (rplacd z w))))
(cons (copy3 (cadr z)) (cddr z)))))
(copy1 '(a b c))
(copy2 '(a b c))
(copy3 '(a b c))
(copy3 '((a.b).(c.d)))